package com.hqyj.zdf.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hqyj.zdf.dao.UserDao;
import com.hqyj.zdf.pojo.PageData;
import com.hqyj.zdf.pojo.User;
import com.hqyj.zdf.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
@Service
public class UserServiceImpl implements UserService {
   @Autowired
    private UserDao userDao;
    @Override
    public List<User> getAll() {
        System.out.println("获取全部用户成功");
        List<User> userList = userDao.queryAll();
        return userList;
    }

    @Override
    public PageData<User> getUserByPage(int pageNumber, int pageSize) {
        //使用分页插件
        //拦截下一次查询
        PageHelper.startPage(pageNumber,pageSize);
        //查询全部用户信息
        List<User> userList = userDao.queryAll();
        //创建pageInfo,pageInfo会计算分页相关的信息
        PageInfo<User> pageInfo=new PageInfo<>(userList);
        //创建自己的数据模型
        PageData<User> pageData=new PageData<>();

        pageData.setCurrentPage(pageNumber);
        pageData.setPageSize(pageSize);
        //填充总页数
        pageData.setTotalPage(pageInfo.getPages());
        //填充总记录数
        pageData.setTotalSize((int)pageInfo.getTotal());

        if(pageInfo.isHasNextPage()){
            //有下一页
            pageData.setNextPage(pageInfo.getNextPage());
        }else {
            //没有下一页
            pageData.setNextPage(pageInfo.getPages());
        }
        if(pageInfo.isHasPreviousPage()){
            //有上一页
            pageData.setPreviousPage(pageInfo.getPrePage());
        }else {
            //没有上一页
            pageData.setPreviousPage(1);
        }
        pageData.setList(pageInfo.getList());

        return pageData;
    }
}
